<?php

namespace app\admin\controller\choi;

use app\common\controller\Backend;
use app\admin\model\choi\Setting as SettingModel;

/**
 * 设置管理
 *
 * @icon fa fa-circle-o
 */
class Setting extends Backend
{
    
    /**
     * Setting模型对象
     * @var \app\admin\model\choi\Setting
     */
    protected $model = null;

    public function _initialize()
    {
        parent::_initialize();
        $this->model = new \app\admin\model\choi\Setting;

    }
    
    /**
     * 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
     * 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
     * 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
     */

    /**
     * 协议
     * @return string
     * @throws \think\Exception
     */
    public function agreement()
    {
        $this->param('agreement', '可语协议');
        return $this->view->fetch();
    }

    /**
     * 关于可语
     */
    public function about()
    {
        $this->param('about', '关于可语');
        return $this->view->fetch();
    }

    /**
     * 服务热线
     */
    public function service()
    {
        $this->param('service', '服务热线');
        return $this->view->fetch();
    }

    private function param($param, $describe = '')
    {
        $row = SettingModel::getValue($param);
        if ($this->request->post()) {
            $keys = SettingModel::getAllKeys();
            $content = $this->request->post('content');
            if (in_array($param, $keys)) {
                if ($row != $content) {
                    $res = SettingModel::updateValue($param, $content);
                } else {
                    $res = true;
                }
            } else {
                $res = SettingModel::add($param, $content, $describe);
            }
            $res ? $this->success() : $this->error();
        }
        $this->assign('content', $row);
    }

}
